export interface ResponseData<T> {
  code: number;
  message: string;
  data: T;
  trace_id: string;
  total?: number;
  page?: number;
  size?: number;
  pages?: number;
}

export interface User {
  id: number;
  username: string;
  email: string;
  role: 'enterprise' | 'teacher' | 'student' | 'admin';
  status: 'pending' | 'active' | 'inactive';
  real_name: string;
  avatar: string;
  phone: string;
  created_at: string;
  updated_at: string;
}

export interface Project {
  id: number;
  title: string;
  description: string;
  requirements: string;
  budget: number;
  status: 'open' | 'closed' | 'in_progress' | 'completed';
  category: string;
  tags: string[];
  enterprise_id: number;
  created_at: string;
  updated_at: string;
}

export interface Application {
  id: number;
  project_id: number;
  applicant_id: number;
  status: 'pending' | 'approved' | 'rejected';
  cover_letter: string;
  resume: string;
  portfolio: string;
  created_at: string;
  updated_at: string;
}

export interface Statistics {
  total_users: number;
  total_projects: number;
  total_applications: number;
  total_matches: number;
  active_projects: number;
  pending_applications: number;
}

export interface ExportData {
  download_url: string;
  filename: string;
}

// 仪表盘统计数据
export interface DashboardStats {
  userCount: number;
  userGrowth: number;
  projectCount: number;
  projectGrowth: number;
  applicationCount: number;
  applicationGrowth: number;
}

// 用户图表数据
export interface UserChartData {
  labels: string[];
  data: number[];
}

// 课题图表数据
export interface ProjectChartData {
  series: {
    name: string;
    value: number;
    itemStyle?: {
      color?: string;
    };
  }[];
}

// 活动项
export interface ActivityItem {
  id: number;
  icon: string;
  title: string;
  description: string;
  time: string;
}

// 待办事项
export interface TodoItem {
  id: number;
  title: string;
  description?: string;
  completed: boolean;
  createdAt: string;
  updatedAt: string;
}
